/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.ts.domain.req;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;

import com.xy.lang.validation.annotation.AlertMessage;

import java.time.LocalDateTime;
import java.util.List;

/**
 *
 *
 * @author wwj
 * @date 2021-4-1
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class ListTrainRequest {

    @NotNull(message = "pageIndexRequired")
    @AlertMessage(code = "pageIndexRequired", msg = "页索引不能为空")
    private Integer pageIndex;

    @NotNull(message = "pageSizeRequired")
    @AlertMessage(code = "pageSizeRequired", msg = "页大小不能为空")
    private Integer pageSize;

    /**
     * 流程Id
     */
    @ApiModelProperty("流程Id")
    private Long documentFlowId;
    /**
     * 培训方式：
     train_method_self_study-自学、
     train_method_practical_operation实操、
     train_method_explain-理论讲解(字典id)
     */
    @ApiModelProperty("培训方式：\n" +
            "     train_method_self_study-自学、\n" +
            "     train_method_practical_operation实操、\n" +
            "     train_method_explain-理论讲解(字典id)")
    private String mode;

    /**
     * 考核方式
     */
    private String assess;
    /**
     * 培训分类
     train_year-年度培训
     train_common-普通培训
     */
    @ApiModelProperty("培训分类\n" +
            "     train_year-年度培训\n" +
            "     train_common-普通培训")
    private String trainClassify;
    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    private LocalDateTime timeBegin;
    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间")
    private LocalDateTime timeEnd;
    /**
     * 是否查询全部
     */
    private Boolean getAllFlag;
    /**
     * 是否是讲师入口
     */
    private Boolean withTrainUser;
    /**
     * 是否查询发放部门
     */
    private Boolean withUserGroup;
    /**
     * 是否查询发放人员
     */
    private Boolean withUser;
    /**
     * 是否查询发放状态
     */
    private Boolean withStatus;
    /**
     * 是否查询自学记录
     */
    private Boolean withLearnRecord;
    /**
     * 是否查询实操记录
     */
    private Boolean withPracticeRecord;
    /**
     * 是否查询考试记录
     */
    private Boolean withExaminationRecord;
}
